package com.yami.shop.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yami.shop.bean.model.ShopCategory;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 店铺分类Mapper接口
 */
public interface ShopCategoryMapper extends BaseMapper<ShopCategory> {
    
    /**
     * 分页查询店铺分类列表
     * @param page 分页参数
     * @param shopCategory 查询条件
     * @return 分类分页列表
     */
    IPage<ShopCategory> listCategoryPage(Page<ShopCategory> page, @Param("category") ShopCategory shopCategory);
    
    /**
     * 根据店铺ID查询分类列表
     * @param shopId 店铺ID
     * @return 分类列表
     */
    List<ShopCategory> listByShopId(@Param("shopId") Long shopId);
    
    /**
     * 检查分类名称是否存在
     * @param shopId 店铺ID
     * @param categoryName 分类名称
     * @param id 排除的分类ID（更新时使用）
     * @return 存在数量
     */
    int checkCategoryNameExist(@Param("shopId") Long shopId, 
                              @Param("categoryName") String categoryName, 
                              @Param("id") Long id);
    
    /**
     * 更新分类状态
     * @param id 分类ID
     * @param status 状态
     * @return 影响行数
     */
    int updateStatus(@Param("id") Long id, @Param("status") Integer status);
} 